Electronic mail (e-mail) is one of the most commonly used applications for distributed computer networks. The benefits of e-mail applications are numerous. Users can quickly communicate with one another. If a user is not available to pick up a message immediately, the message is stored until that user can review the stored message at a later time. E-mail messages also provide a quick and easy way to package information such as sales reports, graphics, and other data for transfer to another user by simply attaching the information to the message. These days, business users increasingly rely on e-mail messages to share ideas, transmit documents, schedule meetings, and perform a multitude of other everyday tasks.
These tasks may be accomplished by a variety of software programs. For example, e-mail programs facilitate the transmission of messages between users. Messaging-enabled scheduling programs allow users to request and schedule meetings and appointments via electronic messages. Computer programs known as desktop information managers attempt to coordinate the growing stream of electronic communications by incorporating e-mail, a calendar, task management, contact management, notes, and journal features into a single application program.
The increased reliance on electronic messaging has resulted in a great increase in the number of electronic messages a user sends and receives daily. These messages can include news messages, as well as general mail messages. Users who send and receive a large number of e-mail messages would like an effective way to process their e-mail without spending a lot of time sorting through their in-box, deleting, filing, forwarding, and responding to their messages. Hence, a major problem with e-mail is that a user can become inundated with messages without an efficient and effective means to manage them, especially with respect to news messages.
Typically, news messages are formatted in a news conversation threading structure or tree structure, which is a conversation threading scheme used by some electronic message systems. This tree structure generally consists of complex message references with correspondingly unique message identifiers. In this conversation threading scheme, related news messages are grouped together forming a conversation. A conversation will generally consist of a conversation root and nested replies or reply messages. These nested replies or reply messages are commonly referred to as children of the conversation root. Based on the message references and identifiers, the tree structure is arranged so that the conversation can retain its original order. Specifically, the tree structure is arranged so that the conversation root is displayed first and reply messages are displayed thereafter in the order in which each is received. The tree structure also accommodates reply messages that stem from other reply messages and so forth. This form of conversation threading allows messages to be retrieved from a server in a logical order.
Other systems have managed conversation threading by generating a conversation index. The conversation index consists of a preamble for uniquely identifying the conversation root and additional parameters for each child of the conversation root. In this conversation threading scheme, a group of related messages making up a conversation generally have the same preamble. The parameters for related reply messages, whether a reply message is linked to the conversation root or another reply message, are derived from the conversation root. In this way, the group of related messages are linked to each other and message order can be maintained.
Oftentimes in these prior systems, the integrity of the message order can be difficult to maintain if all related messages are not retrieved at one time during a download operation between a server and a client. In addition, these systems generally must rethread all conversations after every download operation. These systems typically do not have a means for tracking messages so that message order can be maintained and messages do not have to be rethreaded.
Another problem resulting from prior systems using different conversation threading schemes is converting one conversation threading scheme to another. For example, some systems use a MAPI format, where messages stored in a local message store, such as a MAPI store, are threaded by generating a conversation index. The MAPI format cannot handle news messages, which are typically formatted in a tree structure. Not only are these systems unable to accommodate a news message in a tree structure, they do not have a means for converting the news message to a compatible conversation threading scheme.
Therefore, there is a need for a system that optimizes communication with electronic mail servers. There is also a need for a single mechanism for managing messages on a user's local message store. There is a need for a system that is able to accommodate news messages. In addition, there is a need for a system that effectively and efficiently keeps track of messages that are downloaded from a server to a client. Also, there is a need for a system that is able to maintain the message order of a threaded conversation. There is an additional need for a system that is able to convert one conversation threading scheme to another.